package com.augurit.gzcgwsp.sendNotice.service;

import java.util.Date;
import java.util.Map;

import com.augurit.common.system.web.auth.form.LoginUserForm;
import com.augurit.wf.bi.web.form.WfBusInstanceTaskForm;
import com.augurit.wf.common.entity.Jbpm4HistTask;

	/**
	 * 交换案件状态
	 * 
	 * @author xuguowei ... ... ...
	 * 
	 */
	public interface IExchangeStateService {

	/**
	 * 案件状态交换
	 * 
	 * @param user
	 * @param instance
	 */
	public void exchangeState(LoginUserForm user,WfBusInstanceTaskForm instance) throws Exception;
	
	/**
	 * 提前一天通知经办人
	 * @param taskInstDbid
	 * @return
	 */
	public void sendSmsInfo(Long taskInstDbid);
	
	/**
	 * 获取受理时间
	 * @param task
	 * @return
	 */
	public Date getAcceptTime(Jbpm4HistTask thisInstance);

	/**
	 * 补交受理
	 * @param user 当前用户
	 * @param instance 流程实例类
	 * @return
	 */
	public boolean saveBjsl(LoginUserForm user, String procInstId,Long taskInstDbid,String templateCode,String masterEntityKey,String sxbm,String durationExpression);
	/**
	 * 补交告知
	 * @param templatCode 工作流模板编码
	 * @param ywId 表单主键id
	 * @param userName 当前用户姓名
	 * @return
	 */
	public boolean saveBjgz(String templatCode,String ywId,String userName);
	
	/**
	 * 根据业务id和模板编号构造Map
	 * @param templateCode
	 * @param ywId
	 * @return
	 */
	public Map getMapByTemplate(String templateCode,String ywId);
	
	/**
	 *
	 * 将表单内容转换为map
	 * @param user 当前用户
	 * @param instance 工作流表单
	 * @return
	 */
	public Map<String,String> buildMap(LoginUserForm user,Long taskInstDbid,String masterEntityKey,String templateCode,boolean isCheckActivityName);
}
